package com.snpic.appaw.module.insure.controller.app.cxParty.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.snpic.appaw.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.snpic.appaw.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "用户 APP - 车险出单-投被保人信息分页 Request VO")
@Data
public class AppCxPartyPageReqVO extends PageParam {

    @Schema(description = "唯一流水号")
    private String sessionid;

    @Schema(description = "订单号")
    private String orderNo;

    @Schema(description = "投保人姓名")
    private String phname;

    @Schema(description = "投保人证件类型，枚举")
    private String phidtype;

    @Schema(description = "投保人证件号码")
    private String phidno;

    @Schema(description = "投保人性别，枚举")
    private String gender;

    @Schema(description = "投保人出生日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] phbirthdate;

    @Schema(description = "投保人手机")
    private String phtelephone;

    @Schema(description = "投保人邮箱")
    private String phemail;

    @Schema(description = "投保人联系地址")
    private String phaddress;

    @Schema(description = "投保人身份证有效起期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] phstartdate;

    @Schema(description = "投保人身份证有效止期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] phenddate;

    @Schema(description = "投保人民族")
    private String phnation;

    @Schema(description = "投保人签发机构")
    private String phissuer;

    @Schema(description = "被保人姓名")
    private String insuredname;

    @Schema(description = "被保人性别，枚举")
    private String insuredgender;

    @Schema(description = "被保人证件类型，枚举")
    private String insuredidtype;

    @Schema(description = "被保人证件号码")
    private String insuredidno;

    @Schema(description = "被保人出生日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] insuredbirthdate;

    @Schema(description = "被保人手机")
    private String insuredmobile;

    @Schema(description = "被保人身份证有效起期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] insuredstartdate;

    @Schema(description = "被保人身份证有效止期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] insuredenddate;

    @Schema(description = "被保人民族")
    private String insurednation;

    @Schema(description = "被保人签发机构")
    private String insuredissuer;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "原始oracle中的id，用于数据迁移")
    private Long oldId;

}